package com.zxy.ziems.server.device.service;

import com.zxy.ziems.server.device.pojo.dto.DeviceTypePropertyDTO;
import com.zxy.ziems.server.device.pojo.entity.DeviceTypeEntity;
import com.zxy.ziems.server.device.pojo.entity.DeviceTypePropertyEntity;
import com.zxy.ziems.server.device.pojo.vo.DataTypeVO;
import com.zxy.ziems.server.device.pojo.vo.DevicePropertyVO;

import java.util.List;

/**
 * 设备类型关联属性
 * @author 10348359
 * @create 2024-03-20 22:25
 */
public interface DeviceTypePropertyService {
    /**
     * 新增
     * @param dto
     */
    void add(DeviceTypePropertyDTO dto);

    /**
     * 更新
     * @param dto
     */
    void update(DeviceTypePropertyDTO dto);

    /**
     * 删除
     * @param id
     */
    void deleteById(String id);

    /**
     * 查询
     * @param deviceType
     * @param dataTypeId
     */
    DeviceTypePropertyEntity getByDevice(String deviceType, String dataTypeId);

    /**
     * 根据设备类型查询全部属性实体
     * @param deviceType
     * @return
     */
    List<DeviceTypePropertyEntity> listByDeviceType(String deviceType);

    /**
     * 根据设备类型查询全部属性试图
     * @param deviceType
     * @return
     */
    List<DevicePropertyVO> viewListByDeviceType(String deviceType);

    /**
     * 根据设备类型查询数据类型列表
     * @param deviceType
     * @return
     */
    List<DataTypeVO> viewDataTypeListByDeviceType(String deviceType);

    /**
     * 根据设备id查询数据类型列表
     * @param deviceId
     * @return
     */
    List<DataTypeVO> viewDataTypeListByDeviceId(String deviceId);
}
